package br.com.websec.util;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;

import org.apache.log4j.Logger;


public class ArquivoUtil {

	private static final Logger logger = Logger.getLogger(ArquivoUtil.class.getName());
	private String caminhoArquivoSalvo;
	
	//Define onde o arquivo será salvo temporariamente.
	public  boolean upload(byte[] arquivo, String nomeArquivo) {
		
		try {
			 String diretorio =  "E:"+File.separator+File.separator+"arquivos";
			 gravaArquivo(arquivo, diretorio,nomeArquivo);
			 return true;			

		} catch (Exception ex) {
			logger.error("Erro no upload do arquivo" + ex.getMessage());			
			return false;
		}

	}
	
	public  void gravaArquivo(byte[] arquivo,String caminhoArquivo,String nomeArquivo ) {
		
		try {
			File file = new File(caminhoArquivo);
			
			if(!file.exists()){
				if(!file.mkdir()){
					throw new IOException("Falha ao criar Diretório");
				}
			}
			
		    setCaminhoArquivoSalvo(caminhoArquivo+nomeArquivo);
		    
		// Grava o arquivo no diretório
		    
		    BufferedOutputStream out = new BufferedOutputStream(new FileOutputStream(caminhoArquivo+File.separator+nomeArquivo));
			out.write(arquivo);
			out.flush();
			out.close();
		
		} catch (IOException ex) {
			logger.error("Erro de IO " + ex.getMessage());
		} catch (Exception ex) {
			logger.error("Erro ao Nao Esperado" + ex.getMessage());
		}
	}
	
//	
//	public RemessaXML  lerXml() {
//		FileReader reader = null;
//		try {
//			// carrega o arquivo XML para um objeto reader
//			 String diretorio =  "E:"+File.separator+File.separator+"arquivos"+File.separator;
//			reader = new FileReader(diretorio+"titulos.xml");
//			XStream xStream = new XStream(new DomDriver());
//			
//			// informamos as tags que serão lidas
//
//			xStream.alias("titulos", RemessaXML.class);
//			xStream.alias("detalhes", ArrayList.class);
//
//			RemessaXML t = (RemessaXML) xStream.fromXML(reader);			
//			return t;
//			
//			
//			
//		} catch (FileNotFoundException e) {
//			e.printStackTrace();
//			return null;
//		}
//		
//		
//	}
	
	public String getCaminhoArquivoSalvo() {
		return this.caminhoArquivoSalvo;
	}
	public void setCaminhoArquivoSalvo(String caminhoArquivoSalvo) {
		this.caminhoArquivoSalvo = caminhoArquivoSalvo;
	}
	
}